package leetcode;

/**
 * 动态规划：背包问题 完全背包 ：兑换零钱2
 */
public class Solution48 {
    class Solution {
        public int change(int amount, int[] coins) {
            if(coins == null || coins.length == 0){
                return 0;
            }
            int[] dp = new int[amount + 1];
            dp[0] = 1;  //容量为0的背包存存放价值为1的物品
            //遍历数组 递推公式
            for(int i = 0;i < coins.length;i++){
                for(int j = coins[i];j <= amount;j++){
                    dp[j] = dp[j] + dp[j - coins[i]];
                }
            }
            return dp[amount];
        }
    }
}
